package com.spring.demo3.eg5.factory;

import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.ClassMetadata;

import javax.annotation.Resource;

/**
 * 类元数据读取器,可以读取一个类上的任意信息
 *
 * @author vhans
 */
public interface MyMetadataReader {

    // 返回类文件资源文件引用
    Resource getResource();

    // 返回一个ClassMetadata对象，可以通过这个读取想获取类的一些元数据信息，
    // 如类的class对象、是否是接口、是否有注解、是否是抽象类、父类名称、接口名称、内部包含的子类列表等等
    ClassMetadata getClassMetadata();

    // 获取类上的所有注解信息
    AnnotationMetadata getAnnotationMetadata();
}
